package cn.iocoder.yudao.module.member.dal.dataobject.user.vo;

import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.ip.core.Area;
import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler;
import cn.iocoder.yudao.module.member.dal.dataobject.group.MemberGroupDO;
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
import cn.iocoder.yudao.module.system.enums.common.SexEnum;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author zhangjiasong
 * @description: TODO
 * @date 2023/10/31 12:40
 */
@Data
@NoArgsConstructor
@Schema(description = "用户个人信息 MemberUserParam DO")
public class MemberUserParamDO{

    /**
     * 手机
     */
    @Schema(description = "手机", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String mobile;

    /**
     * 用户类型： 3患者 4医生
     */
    @Schema(description = "用户类型： 3患者 4医生", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private Integer userType;
    /**
     * 帐号状态
     * <p>
     * 枚举 {@link CommonStatusEnum}
     */
    @Schema(description = "帐号状态", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private Integer status;
    // ========== 基础信息 ==========

    /**
     * 用户昵称
     */
    @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String nickname;
    /**
     * 用户头像
     */
    @Schema(description = "用户头像", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String avatar;

    /**
     * 真实名字
     */
    @Schema(description = "真实名字", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String name;
    /**
     * 身份证号
     */
    @Schema(description = "身份证号", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String identityCard;

    /**
     * 性别
     * <p>
     * 枚举 {@link SexEnum}
     */
    @Schema(description = "性别", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private Integer sex;
    /**
     * 出生日期
     */
    @Schema(description = "出生日期", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private LocalDateTime birthday;
    /**
     * 所在地
     * <p>
     * 关联 {@link Area#getId()} 字段
     */
    @Schema(description = "所在地", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String areaId;

    /**
     * 所在地名称
     * <p>
     * 关联 {@link Area#getId()} 字段
     */
    @Schema(description = "所在地名称", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String areaName;
    /**
     * 用户备注
     */
    @Schema(description = "用户备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String mark;
}
